\section{client\_\-parse.h File Reference}
\label{client__parse_8h}\index{client\_\-parse.h@{client\_\-parse.h}}


Funzioni per il parsing di NMATC.  
{\ttfamily \#include $<$string.h$>$}\par
{\ttfamily \#include $<$stdlib.h$>$}\par
{\ttfamily \#include $<$ctype.h$>$}\par
{\ttfamily \#include \char`\"{}util.h\char`\"{}}\par
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int {\bf tokenizer} (char $\ast$, char $\ast$$\ast$)
\begin{DoxyCompactList}\small\item\em Spezza il buffer di input in token. \item\end{DoxyCompactList}\item 
int {\bf new\_\-check} (int, char $\ast$$\ast$)
\item 
int {\bf cmd\_\-check} (int, char $\ast$$\ast$)
\item 
int {\bf num\_\-check} (char $\ast$, double $\ast$)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Funzioni per il parsing di NMATC. Header file per le funzioni di parsing del client NMAT.

\begin{DoxyAuthor}{Author}
Marco Luisi
\end{DoxyAuthor}
\doxyref{client\_\-parse.h}{p.}{client__parse_8h}

\begin{DoxyAuthor}{Author}
Marco Luisi 
\end{DoxyAuthor}


\subsection{Function Documentation}
\index{client\_\-parse.h@{client\_\-parse.h}!cmd\_\-check@{cmd\_\-check}}
\index{cmd\_\-check@{cmd\_\-check}!client_parse.h@{client\_\-parse.h}}
\subsubsection[{cmd\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int cmd\_\-check (int {\em tnum}, \/  char $\ast$$\ast$ {\em tokens})}\label{client__parse_8h_a63b1f059b9a5d8b81084270121ffc3a2}
Come prima cosa i vari casi possibili sono suddivisi in base al numero di token trovati da \doxyref{tokenizer()}{p.}{client__parse_8h_abd215590a8123ec173db72c1bf6c2883}. Per ogni numero di token sono possibili solo determinati comandi validi. Al termine di cmd\_\-check sono validati in modo sicuro tutti i comandi tranne new che necessita di un ulteriore controllo sui numeri \index{client\_\-parse.h@{client\_\-parse.h}!new\_\-check@{new\_\-check}}
\index{new\_\-check@{new\_\-check}!client_parse.h@{client\_\-parse.h}}
\subsubsection[{new\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int new\_\-check (int {\em tkns\_\-num}, \/  char $\ast$$\ast$ {\em tkns})}\label{client__parse_8h_aa56751a2da0e7bf0397b84b8f2f01d50}
new\_\-check controlla la validità dei numeri della matrice che si vuole creare

In caso di errore restituisce -\/1 Memorizza nella struct messaggio la lunghezza di righe e colonne e l'array di double. \index{client\_\-parse.h@{client\_\-parse.h}!num\_\-check@{num\_\-check}}
\index{num\_\-check@{num\_\-check}!client_parse.h@{client\_\-parse.h}}
\subsubsection[{num\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int num\_\-check (char $\ast$ {\em num}, \/  double $\ast$ {\em d})}\label{client__parse_8h_a27fc98025a5d07607a087869d57fb1f5}

\begin{DoxyParams}{Parameters}
\item[{\em num}]\item[{\em d}]\end{DoxyParams}
\begin{DoxyReturn}{Returns}
intero per segnalare l'esito della conversione. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
\item[{\em 0}]se è non è presente il terminatore di riga. \item[{\em 1}]se è presente il terminatore di riga. \item[{\em -\/1}]se è stato rilevato un errore. \end{DoxyRetVals}
\index{client\_\-parse.h@{client\_\-parse.h}!tokenizer@{tokenizer}}
\index{tokenizer@{tokenizer}!client_parse.h@{client\_\-parse.h}}
\subsubsection[{tokenizer}]{\setlength{\rightskip}{0pt plus 5cm}int tokenizer (char $\ast$ {\em input\_\-line}, \/  char $\ast$$\ast$ {\em tokens})}\label{client__parse_8h_abd215590a8123ec173db72c1bf6c2883}


Spezza il buffer di input in token. tokenizer riceve in input il puntatore a una stringa buffer su cui chiama iterativamente la funzione strtok con lo spazio come separatore.


\begin{DoxyParams}{Parameters}
\item[{\em input\_\-line}]puntatore al buffer da spezzare. \item[{\em tokens}]puntatore all'array di char$\ast$ per i tokens.\end{DoxyParams}
\begin{DoxyReturn}{Returns}
numero di tokens. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
\item[{\em -\/1}]in caso di errore. \end{DoxyRetVals}


se non ci sono token esce subito con codice d'errore

se non ci sono token esce subito con codice d'errore 